package com.itany.corejava.code08_常用类.日期类;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 石小俊
 * @version 1.0
 * @date 2023年03月17日 11:05
 */
public class Test03_转换字符串 {

    public static void main(String[] args) throws ParseException {
        stringToDate();
    }

    public static void dateToString(){
        // 将日期转换成字符串
        Date date = new Date();
        System.out.println(date);
        // date.setTime(date.getTime()+12*60*60*1000);
        // 可以将日期转换成字符串
        // 1.创建一个SimpleDateFormat对象
        // 由于直接将Date转换字符串的方法是其父类DateFormat提供的
        // 因此通过多态将子类的对象指向父类的引用
        DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 a KK:mm:ss SSS E z Z");
        // 2.调用format方法进行转换
        String s = dateFormat.format(date);
        System.out.println(s);
        // 简写方式
        String s2  = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(date);
        System.out.println(s2);
    }

    public static void stringToDate() throws ParseException {
        String s = "2023年02月02日";
        // 1.创建一个SimpleDateFormat对象
        // 由于直接将Date转换字符串的方法是其父类DateFormat提供的
        // 因此通过多态将子类的对象指向父类的引用
        // 定义格式的时候与需要转换的字符串的格式必须一致,否则报错
        // DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); // 报错
        DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = dateFormat.parse(s);
        System.out.println(date);
    }
}
